#ifndef _JOST_ARRAY_HPP_
#define _JOST_ARRAY_HPP_

#include <vector>
#include "jost/Value.hpp"

namespace jost
{
    class Array;
}

/**
 * The class <code>Array</code> provides the abstraction for JSON
 * arrays. Thus, it allows to maintain a list of JSON
 * <code>Value</code>.
 *
 *
 * @author Angelo Corsaro <mailto:angelo.corsaro@gmail.com>
 * @version 0.1
 */
class jost::Array : public jost::Value,
                    public std::vector<jost::Value*> 
{
public:
    /**
     * Creates an instance of a JSON Array.
     */
    Array() throw();

    /**
     * Destroys an instance of a JSON Array, releasing all the
     * resources associated with the element it contains.
     */
    virtual ~Array() throw();

public:
    /**
     * Provides a stringified version of the Object which is compliant
     * with the JSON format.
     *
     * @return a stringfied representation of the value.
     */
    virtual std::string serialize() throw();
    
};

    

#endif /*_JOST_ARRAY_HPP_*/
